from .web_object import *
from .middleware_node import MiddlewareNode


class Ptr:
    '''
        指针对象
        用于控制中间件是否继续往后执行
    '''
    def __init__(self, middleware_node: MiddlewareNode, req: HttpRequest):
        # 保留请求对象 以便更新 params
        self.req = req
        # 请求路径使用 / 进行分隔
        self.path = req.path.split('/')
        # 删除第一个空字符串
        if self.path[0] == '':
            self.path = self.path[1:]
        # 中间件节点为空时，表示中间件已经结束
        if middleware_node is None:
            self.next_flag = False
        # 中间件节点不为空时，表示中间件还没有结束
        else:
            self.next_flag = True
            self.middleware_node = middleware_node

    def next(self):
        ''' 对外表示继续匹配下一个中间件 '''
        self.next_flag = True